#include <stdio.h>
#include <stdlib.h>

int main()
{
  int i, j, n, *p;
  printf("请输入狱的房间数：");
  scanf("%d", &n);
  // 分配空间、calloc动态内存开辟函数
  p = calloc(n + 1, sizeof(int));
  for (i = 0; i <= n; i++)
  {
    p[i] = 1; // 初始状态所有的牢房门都是锁住的
  }
  for (i = 1; i <= n; i++)         // 狱吏走过的次数
    for (j = i; j <= n; j = j + i) // 需要转动锁的牢房的编号
      p[j] = 1 - p[j];
  for (i = 1; i <= n; i++)
    if (p[i] == 0)
      printf("% d if free.\n", i);
}